package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cls = Class. forName("reflect.Person");
        //Person -> public void say(String name , int count)
        Method method = cls.getMethod("getName");
        //获取方法名
        String name = method.getName();
        //获取方法的修饰符
        int modifier = method.getModifiers();
        switch (modifier){//利用列举常量提高代码可读性
            case Modifier.PUBLIC:
                System.out.println("他是一个公开的方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("他是一个私有方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("他是一个受保护的方法");
                break;
            default:
                System.out.println("他是一个默认方法");
                break;
        }
        //获取方法的返回值类型
        Class returnType = method.getReturnType();
        System.out.println("他的返回类型是："+returnType);
        //获取方法参数个数
        int count = method.getParameterCount();
        System.out.println("他的参数个数是："+count);

    }
}
